package com.jrtc.base.util;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ReflectUtil {
    /**
     * 生成优惠卷兑换码
     */
    public String achieveCode(Long id) {
        String[] beforeShuffle = new String[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",
                "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a",
                "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",
                "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a",
                "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",
                "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a",
                "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                "w", "x", "y", "z" };
        // 将数组转换成list集合
        /**
         * （1）该方法不适用于基本数据类型（byte,short,int,long,float,double,boolean）
         * （2）该方法将数组与列表链接起来，当更新其中之一时，另一个自动更新 （3）不支持add和remove方法
         */
        List list = Arrays.asList(beforeShuffle);
        // 将list集合中的元素的顺序打乱
        Collections.shuffle(list);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 7; i++) {
            sb.append(list.get(i));
        }
        String afterShuffle = sb.toString();
        //String result = afterShuffle.substring(3, 9);
        return afterShuffle + id;
    }
}
